﻿using System;
using ComplexNumberLibrary;

namespace ComplexNumberPresentation
{
    public enum Operation
    {
        None,
        Add,
        Subtract,
        Multiply,
        Divide,
    }

    public interface IView
    {
        ComplexNumber Result { set; get; }

        double CurrentReal { set; get; }
        double CurrentImaginary { set; get; }

        Operation CurrentOperation { set; get; }

        bool ImaginaryFocused { set; get; }
        String ImaginaryText { set; get; }

        bool LogVisible { set; get; }
        String LogText { set; get; }

        int LoggerIndex { set; get; }

        event Action OnClearClick;
        event Action OnAllClearClick;
        event Action OnOneClick;
        event Action OnTwoClick;
        event Action OnThreeClick;
        event Action OnFourClick;
        event Action OnFiveClick;
        event Action OnSixClick;
        event Action OnSevenClick;
        event Action OnEightClick;
        event Action OnNineClick;
        event Action OnZeroClick;
        event Action OnImaginaryClick;
        event Action OnResultClick;
        event Action OnAddClick;
        event Action OnSubtractClick;
        event Action OnMultiplyClick;
        event Action OnDivideClick;
        event Action OnModulusClick;
        event Action OnShowLogClick;
        event Action<int> OnChooseLogClick;
        event Action OnSaveToFileClick;

        ILogger getLoggerToFile();
        ILogger getHtmlLogger();
    }

}
